package com.green.configfile;

import com.green.configfile.config.DataBaseConfig;
import com.green.configfile.config.DataBaseConfig2;
import com.green.configfile.config.PersonConfig;
import com.green.configfile.config.SttConfig;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;

/**
 * 读取yml中自定义信息
 * 1、读取springboot中的yml文件的数据
 * 2、读取自定义文件中的数据，最好是创建properties文件结尾的，如要读取yml文件，有点麻烦，可以看defaultPropertyResourceFactory类
 */
@SpringBootApplication
public class CongfigFileApplication {

    public static void main(String[] args) {

        ConfigurableApplicationContext run = SpringApplication.run(CongfigFileApplication.class, args);
//        SttConfig bean = run.getBean(SttConfig.class);
//        bean.getInfo();
//        System.out.println("--------------");

        //读取默认yml文件中的
//        PersonConfig bean1 = run.getBean(PersonConfig.class);
//        System.out.println(bean1.getName());
//        for (String s : bean1.getHobby()) {
//            System.out.println(s);
//        }

        //读取自定义properties结尾文件中的数据,只需要结合PropertySource注解使用
        DataBaseConfig bean2 = run.getBean(DataBaseConfig.class);
        System.out.println(bean2);

        //读取自定义yml文件中的数据,需要继承DefaultPropertySourceFactory重写方法，再在只需要结合PropertySource注解使用中指定factory
        DataBaseConfig2 bean3 = run.getBean(DataBaseConfig2.class);
        System.out.println(bean3);


        //通过environment获取,具体可以看TestController类中的config方法

    }
}
